x86/hyperv: L0 assisted TLB flush
authorWei Liu <wl@xen.org>
Thu, 9 Apr 2020 17:41:04 +0000 (18:41 +0100)
committerWei Liu <wl@xen.org>
Wed, 29 Apr 2020 09:36:38 +0000 (10:36 +0100)
commitf9bf746258eb53011f863571c7073037202b6743
treeab162eda0604e78fc55e0f9ec5f21fefaf3e2a63
parent75550b5fa5a8fa068e35e819d8ba25e0240b20a0
x86/hyperv: L0 assisted TLB flush

Implement L0 assisted TLB flush for Xen on Hyper-V. It takes advantage
of several hypercalls:

 * HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST
 * HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX
 * HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE
 * HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX

Pick the most efficient hypercall available.

Signed-off-by: Wei Liu <liuwe@microsoft.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Paul Durrant <pdurrant@amazon.com>
xen/arch/x86/guest/hyperv/Makefile
xen/arch/x86/guest/hyperv/private.h
xen/arch/x86/guest/hyperv/tlb.c
xen/arch/x86/guest/hyperv/util.c [new file with mode: 0644]